高手请纠错!~!~!~`

来源:百度知道 编辑:UC知道 时间:2024/06/01 18:18:11
#include<math.h>
#include<stido.h>
void main()
{
float a,b,c,d,area;
scanf("%f,%f,%f",&a,&b,&c);
d=1/2*(a+b+c);
area=sqrt(d*(d-a)*(d-b)*(d-c));
printf("resent=%f\n",area);
}

d=1/2*(a+b+c);

改为d=1.0/2.0*(a+b+c);

请把错误提示贴出来

d=1/2*(a+b+c); ==>> d=1.0/2*(a+b+c);

1和2均是int型常量,1/2会是0,0再去*(a+b+c),最后d永远是0,所以修改1为1.0,或者修改2为2.0,这样将/操作转换成了浮点型的普通除法得到0.5.

#include<stdio.h> #include<math.h> void main() { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s); printf("area=%7.2f\n",area); }